The present invention relates generally to point cloud colorization, and more particularly to point cloud colorization with occlusion detection.
A point cloud is a set of data points associated with the 3D (three-dimensional) representation of objects or structures. A point cloud is generated using a 3D scanner system, such as, e.g., a mobile mapping system, a terrestrial laser scanner, or LiDAR (light detection and ranging) system. The 3D scanner system measures a set of data points corresponding to surfaces of an object and outputs the set of data points in a 3D coordinate system as the point cloud. However, a point cloud generated by such a 3D scanner does not include color information for the scanned objects.
Conventionally, point clouds are colorized using images acquired from cameras mounted on the 3D scanner system or from an external database of previously acquired images. The point cloud and the images are geo-referenced to a global coordinate system based on position information estimated from GNSS (global navigation satellite systems), IMUs (inertial measurement units), and/or wheel sensors. Each data point of the point cloud is colorized using the color value at a georeferenced coordinate of the data point in an image closest to that data point. However, where the data point is occluded in its closest image, the color value of the occluding object is incorrectly applied to colorize the data point. For example, where a white pole occludes a data point in an image closest to that data point, the data point is incorrectly colorized with the white color of the pole according to conventional approaches.
One approach for overcoming the problems associated with occlusions is to apply ray casting algorithms to search for another point in the image between the camera and the point of the point cloud currently being colored. However, such approach is computationally expensive and not feasible for mass data applications. Further, since the images being used are not spatially close to the point currently being colored, the accuracy of the mapping is low due to sensor error and position error of the system.